home *** CD-ROM | disk | FTP | other *** search
/ Reverse Code Engineering RCE CD +sandman 2000 / ReverseCodeEngineeringRceCdsandman2000.iso / RCE / Tools / Win95 Secrets / SETUP.Z / DBGDUMP.C < prev    next >
Encoding:
C/C++ Source or Header  |  1995-07-19  |  2.6 KB  |  70 lines

  1. //==================================
  2. // PEDUMP - Matt Pietrek 1995
  3. // FILE: DBGDUMP.C
  4. //==================================
  5.  
  6. #include <windows.h>
  7. #include <stdio.h>
  8. #include "common.h"
  9. #include "extrnvar.h"
  10. #include "dbgdump.h"
  11.  
  12. void DumpImageDbgHeader(PIMAGE_DBG_HEADER pImageDbgHeader)
  13. {
  14.     UINT headerFieldWidth = 30;
  15.  
  16.     printf("  %-*s%04X\n", headerFieldWidth, "Machine:",
  17.                 pImageDbgHeader->Machine);
  18.     printf("  %-*s%04X\n", headerFieldWidth, "Characteristics:",
  19.                 pImageDbgHeader->Characteristics);
  20.     printf("  %-*s%08X\n", headerFieldWidth, "TimeDateStamp:",
  21.                 pImageDbgHeader->TimeDateStamp);
  22.     printf("  %-*s%08X\n", headerFieldWidth, "Checksum:",
  23.                 pImageDbgHeader->Checksum);
  24.     printf("  %-*s%08X\n", headerFieldWidth, "Size of Image:",
  25.                 pImageDbgHeader->SizeOfImage);
  26.     printf("  %-*s%08X\n", headerFieldWidth, "unknown1:",
  27.                 pImageDbgHeader->unknown1);
  28.     printf("  %-*s%04X\n", headerFieldWidth, "Number of Sections:",
  29.                 pImageDbgHeader->NumberOfSections);
  30.     printf("  %-*s%04X\n", headerFieldWidth, "unknown2:",
  31.                 pImageDbgHeader->unknown2);
  32.     printf("  %-*s%08X\n", headerFieldWidth, "DebugDirOffset:",
  33.                 pImageDbgHeader->OffsetOfDebugDirectory);
  34.     printf("  %-*s%08X\n", headerFieldWidth, "DebugDirSize:",
  35.                 pImageDbgHeader->SizeOfDebugDirectory);
  36.     printf("  %-*s%08X\n", headerFieldWidth, "unknown5:",
  37.                 pImageDbgHeader->unknown5);
  38.     printf("  %-*s%08X\n", headerFieldWidth, "unknown6:",
  39.                 pImageDbgHeader->unknown6);
  40.     printf("  %-*s%08X\n", headerFieldWidth, "unknown7:",
  41.                 pImageDbgHeader->unknown7);
  42. }
  43.  
  44. void DumpDbgFile( PIMAGE_DBG_HEADER pImageDbgHeader )
  45. {
  46.     DumpImageDbgHeader(pImageDbgHeader);
  47.     printf("\n");
  48.     
  49.     DumpSectionTable( (PIMAGE_SECTION_HEADER)(pImageDbgHeader+1),
  50.                         pImageDbgHeader->NumberOfSections, TRUE);
  51.                     
  52.     DumpDebugDirectory(
  53.         MakePtr(PIMAGE_DEBUG_DIRECTORY,
  54.         pImageDbgHeader, sizeof(IMAGE_DBG_HEADER) +
  55.         (pImageDbgHeader->NumberOfSections * sizeof(IMAGE_SECTION_HEADER))
  56.         + pImageDbgHeader->OffsetOfDebugDirectory),
  57.         pImageDbgHeader->SizeOfDebugDirectory,
  58.         (DWORD)pImageDbgHeader);
  59.     
  60.     printf("\n");
  61.     
  62.     if ( PCOFFDebugInfo )
  63.         DumpCOFFHeader( PCOFFDebugInfo );
  64.     
  65.     printf("\n");
  66.  
  67.     DumpSymbolTable( MakePtr(PIMAGE_SYMBOL, PCOFFDebugInfo,
  68.                                 PCOFFDebugInfo->LvaToFirstSymbol),
  69.                     PCOFFDebugInfo->NumberOfSymbols );
  70. }